﻿// Decompiled with JetBrains decompiler
// Type: Microsoft.InfoCards.LocalIdCollection
// Assembly: infocard, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// MVID: 8E14765A-6610-409A-BA36-099A0642905D
// Assembly location: E:\git\ALLIDA\windll\infocard.exe

using System.Collections.Generic;

namespace Microsoft.InfoCards
{
  internal class LocalIdCollection
  {
    private SortedList<int, int> m_inner;

    public LocalIdCollection()
    {
      this.m_inner = new SortedList<int, int>();
    }

    public void Add(int item)
    {
      if (this.m_inner.ContainsKey(item))
        return;
      this.m_inner.Add(item, item);
    }

    public void Clear()
    {
      this.m_inner.Clear();
    }

    public int Count
    {
      get
      {
        return this.m_inner.Count;
      }
    }

    public void Filter(LocalIdCollection itemsToKeep)
    {
      for (int index = this.m_inner.Count - 1; index >= 0; --index)
      {
        if (!itemsToKeep.m_inner.ContainsKey(this.m_inner.Keys[index]))
          this.m_inner.RemoveAt(index);
      }
    }

    public IList<int> Keys
    {
      get
      {
        return this.m_inner.Keys;
      }
    }
  }
}
